package com.vcredit.creditcat.api;

import com.vcredit.creditcat.dto.UpdateUserNameDto;
import com.vcredit.creditcat.dto.identity.AuthIdentityDto;
import com.vcredit.creditcat.dto.identity.HandHeldCardDto;
import com.vcredit.creditcat.dto.identity.IdCardInfoDto;
import com.vcredit.creditcat.exception.IdAuthException;
import com.vcredit.creditcat.model.Cust;

public interface ICustIdAuthManager {
	/**
	 * 根据用户查询对应的身份信息
	 * 
	 * @param cust
	 * @return
	 * @throws IdAuthException
	 */
	public AuthIdentityDto findIdCardInfoByProcessId(Cust cust) throws IdAuthException;

	/**
	 * 身份证正面解析完毕后的业务处理
	 * 
	 * @param cust
	 * @param position
	 * @param idImgData
	 * @param resourceCode
	 * @return AuthIdentityDto
	 * @throws Exception 
	 */
	public AuthIdentityDto saveIDcardImg(Cust cust, Integer position, String idImgData,String resourceCode) throws Exception;

	/**
	 * 人脸识别评分对比结果业务处理
	 * @param currentCust
	 * @param verifyImgData
	 * @param flag 0:人脸识别，1手持身份证认证
	 * @return
	 * @throws Exception
	 */
	public IdCardInfoDto verifyFacePair(Cust currentCust,String verifyImgData) throws Exception;
	
	/**
	 * 身份证正面确认
	 * 
	 * @param currentCust Cust
	 * @param accountId Long
	 * @param paramDto UpdateUserNameDto
	 * @return
	 * @throws IdAuthException
	 */
	public void confirmCardNo(Cust cust,Long accountId, UpdateUserNameDto paramDto) throws IdAuthException;
	
	/**
	 * 手持身份证识别评分对比结果业务处理
	 * @param currentCust
	 * @param verifyImgData
	 * @param flag 0:人脸识别，1手持身份证认证
	 * @return HandHeldCardDto
	 * @throws Exception
	 */
	public HandHeldCardDto handHeldPair(Cust currentCust,String verifyImgData) throws Exception;
}
